package com.sk.ccflower.lib.util.json;

import java.util.Collection;
import java.util.List;
import java.util.ListIterator;

/**
 * <p>Java {@link List}로 이루어진 JSON 배열을 나타내는 클래스.</p>
 * <p>JSON의 배열은 서로 다른 자료형으로 구성될 수있다.
 * JSON의 Java 자료형으로 바꾼다면 Java에서는 {@link List}가 적절할 것이다.</p>
 * @author dagui
 *
 */
@SuppressWarnings("unchecked")
public class JSONList extends JSONCollection implements List {

	private static final long serialVersionUID = 7642281568921213043L;

	private List list;
	
	/*
	 * constructor
	 */

	public JSONList(List list) {
		super(list);
		this.list = list;
	}

	/*
	 * implements java.util.List
	 */

	public void add(int index, Object element) {
		list.add(index, element);
	}

	public boolean addAll(int index, Collection c) {
		return list.addAll(index, c);
	}

	public Object get(int index) {
		return list.get(index);
	}

	public int indexOf(Object o) {
		return list.indexOf(o);
	}

	public int lastIndexOf(Object o) {
		return list.lastIndexOf(o);
	}

	public ListIterator listIterator() {
		return list.listIterator();
	}

	public ListIterator listIterator(int index) {
		return list.listIterator(index);
	}

	public Object remove(int index) {
		return list.remove(index);
	}

	public Object set(int index, Object element) {
		return list.set(index, element);
	}

	public List subList(int fromIndex, int toIndex) {
		return list.subList(fromIndex, toIndex);
	}
	
}
